package persistence.dao;

import java.sql.ResultSet;
import java.sql.SQLException;

import persistence.db.DataSet;
import persistence.db.DatabaseConnector;
import persistence.model.AbstractModel;
import persistence.model.Enseignant;

public class EnseignantDAO extends AbstractDAO{
	
	private Enseignant enseignant;
	
	/**
	 * Constructeur d'un enseingantDAO
	 */
	public EnseignantDAO() {
		setTableName("ENSEIGNANT");
	}
	
	/**
	 * Constructeur d'un enseignantDAO
	 * @param ens enseignant corespondant
	 */
	public EnseignantDAO(Enseignant ens) {
		this();
		enseignant = ens;
		this.setId(ens.getId());
;	}
	
	/**
	 * Permet de récupérer tous les enseignant de la base
	 * @return DataSet des enseignants
	 */
	public DataSet all() {
		return new DataSet(this);
	}

	public AbstractModel makeModel(ResultSet rset) {
		try {
			setId(rset.getInt("id_Enseignant"));
			return new Enseignant(getId(),
					rset.getString("titreEnseignant"),
					rset.getString("nomEnseignant"),
					rset.getString("prenomEnseignant"),
					rset.getString("telEnseignant"),
					rset.getString("mailEnseignant"),
					rset.getInt("FK_ENSEIGNANT_STATUT"));
		} catch (SQLException e) {
			System.out.println("makeModel error");
			//e.printStackTrace();
		}
		return null;
	}

	public void save() {
		String query;
		ResultSet result;
		
			query = "INSERT INTO " + getTableName() + " VALUES ( S_PK_ENSEIGNANT.nextval, '" + enseignant.getTitreEnseignant() + "', '" + enseignant.getNomEnseignant() +"', '"+ enseignant.getPrenomEnseignant() + "', '" + enseignant.getTelEnseignant() + "', '" + enseignant.getMailEnseignant() + "', '" + enseignant.getIdStatutEnseignant() +"')";
			/* Execute la requete */
			result = DatabaseConnector.getInstance().execute(query);
			setId(this.getId()); /* Mise a jour de l'identifiant */
	}
	public void save(int id){
		String query;
		ResultSet result;
			query = "UPDATE " + getTableName() + " SET titreEnseignant = '" + enseignant.getTitreEnseignant() + "', nomEnseignant = '" + enseignant.getNomEnseignant() +"', prenomEnseignant = '"+ enseignant.getPrenomEnseignant() + "', telEnseignant = '" + enseignant.getTelEnseignant() + "', mailEnseignant = '" + enseignant.getMailEnseignant() + "', fk_enseignant_statut = " + enseignant.getIdStatutEnseignant() +" WHERE ID_"+ getTableName() + " = "+ id;
			System.out.println("query" + query);
			/* Execute la requete */
			result = DatabaseConnector.getInstance().execute(query);
		}
}
